<?php

namespace Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * RealEstate
 *
 * @ORM\Table(name="real_estate")
 * @ORM\Entity
 */
class RealEstate
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @var string
     *
     * @ORM\Column(name="uuid", type="string", length=36, nullable=false)
     */
    protected $uuid;

    /**
     * @var string
     *
     * @ORM\Column(name="type", type="string", length=45, nullable=false)
     */
    protected $type;

    /**
     * @var integer
     *
     * @ORM\Column(name="rank", type="integer", nullable=false)
     */
    protected $rank;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="breached_on", type="datetime", nullable=true)
     */
    protected $breachedOn;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="broke_on", type="datetime", nullable=true)
     */
    protected $brokeOn;

    /**
     * @var integer
     *
     * @ORM\Column(name="minimum_bet", type="integer", nullable=true)
     */
    protected $minimumBet;

    /**
     * @var integer
     *
     * @ORM\Column(name="maximum_bet", type="integer", nullable=true)
     */
    protected $maximumBet;

    /**
     * @var boolean
     *
     * @ORM\Column(name="for_sale", type="boolean", nullable=false)
     */
    protected $forSale;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="last_modified", type="datetime", nullable=false)
     */
    protected $lastModified;

    /**
     * @var \Entity\Crew
     *
     * @ORM\ManyToOne(targetEntity="Entity\Crew")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="crew_id_owner", referencedColumnName="id")
     * })
     */
    protected $crewOwner;

    /**
     * @var \Entity\User
     *
     * @ORM\ManyToOne(targetEntity="Entity\User")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="user_id_owner", referencedColumnName="id")
     * })
     */
    protected $userOwner;

    /**
     * @var \Entity\User
     *
     * @ORM\ManyToOne(targetEntity="Entity\User")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="broke_by", referencedColumnName="id")
     * })
     */
    protected $brokeBy;

    /**
     * @var \Entity\Country
     *
     * @ORM\ManyToOne(targetEntity="Entity\Country")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="country_id", referencedColumnName="id")
     * })
     */
    protected $country;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set uuid
     *
     * @param string $uuid
     * @return RealEstate
     */
    public function setUuid($uuid)
    {
        $this->uuid = $uuid;
    
        return $this;
    }

    /**
     * Get uuid
     *
     * @return string 
     */
    public function getUuid()
    {
        return $this->uuid;
    }

    /**
     * Set type
     *
     * @param string $type
     * @return RealEstate
     */
    public function setType($type)
    {
        $this->type = $type;
    
        return $this;
    }

    /**
     * Get type
     *
     * @return string 
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * Set rank
     *
     * @param integer $rank
     * @return RealEstate
     */
    public function setRank($rank)
    {
        $this->rank = $rank;
    
        return $this;
    }

    /**
     * Get rank
     *
     * @return integer 
     */
    public function getRank()
    {
        return $this->rank;
    }

    /**
     * Set breachedOn
     *
     * @param \DateTime $breachedOn
     * @return RealEstate
     */
    public function setBreachedOn($breachedOn)
    {
        $this->breachedOn = $breachedOn;
    
        return $this;
    }

    /**
     * Get breachedOn
     *
     * @return \DateTime 
     */
    public function getBreachedOn()
    {
        return $this->breachedOn;
    }

    /**
     * Set brokeOn
     *
     * @param \DateTime $brokeOn
     * @return RealEstate
     */
    public function setBrokeOn($brokeOn)
    {
        $this->brokeOn = $brokeOn;
    
        return $this;
    }

    /**
     * Get brokeOn
     *
     * @return \DateTime 
     */
    public function getBrokeOn()
    {
        return $this->brokeOn;
    }

    /**
     * Set minimumBet
     *
     * @param integer $minimumBet
     * @return RealEstate
     */
    public function setMinimumBet($minimumBet)
    {
        $this->minimumBet = $minimumBet;
    
        return $this;
    }

    /**
     * Get minimumBet
     *
     * @return integer 
     */
    public function getMinimumBet()
    {
        return $this->minimumBet;
    }

    /**
     * Set maximumBet
     *
     * @param integer $maximumBet
     * @return RealEstate
     */
    public function setMaximumBet($maximumBet)
    {
        $this->maximumBet = $maximumBet;
    
        return $this;
    }

    /**
     * Get maximumBet
     *
     * @return integer 
     */
    public function getMaximumBet()
    {
        return $this->maximumBet;
    }

    /**
     * Set forSale
     *
     * @param boolean $forSale
     * @return RealEstate
     */
    public function setForSale($forSale)
    {
        $this->forSale = $forSale;
    
        return $this;
    }

    /**
     * Get forSale
     *
     * @return boolean 
     */
    public function getForSale()
    {
        return $this->forSale;
    }

    /**
     * Set lastModified
     *
     * @param \DateTime $lastModified
     * @return RealEstate
     */
    public function setLastModified($lastModified)
    {
        $this->lastModified = $lastModified;
    
        return $this;
    }

    /**
     * Get lastModified
     *
     * @return \DateTime 
     */
    public function getLastModified()
    {
        return $this->lastModified;
    }

    /**
     * Set crewOwner
     *
     * @param \Entity\Crew $crewOwner
     * @return RealEstate
     */
    public function setCrewOwner(\Entity\Crew $crewOwner = null)
    {
        $this->crewOwner = $crewOwner;
    
        return $this;
    }

    /**
     * Get crewOwner
     *
     * @return \Entity\Crew 
     */
    public function getCrewOwner()
    {
        return $this->crewOwner;
    }

    /**
     * Set userOwner
     *
     * @param \Entity\User $userOwner
     * @return RealEstate
     */
    public function setUserOwner(\Entity\User $userOwner = null)
    {
        $this->userOwner = $userOwner;
    
        return $this;
    }

    /**
     * Get userOwner
     *
     * @return \Entity\User 
     */
    public function getUserOwner()
    {
        return $this->userOwner;
    }

    /**
     * Set brokeBy
     *
     * @param \Entity\User $brokeBy
     * @return RealEstate
     */
    public function setBrokeBy(\Entity\User $brokeBy = null)
    {
        $this->brokeBy = $brokeBy;
    
        return $this;
    }

    /**
     * Get brokeBy
     *
     * @return \Entity\User 
     */
    public function getBrokeBy()
    {
        return $this->brokeBy;
    }

    /**
     * Set country
     *
     * @param \Entity\Country $country
     * @return RealEstate
     */
    public function setCountry(\Entity\Country $country = null)
    {
        $this->country = $country;
    
        return $this;
    }

    /**
     * Get country
     *
     * @return \Entity\Country 
     */
    public function getCountry()
    {
        return $this->country;
    }
}
